#ifndef _L_COLLISION_DETECTOR_120118_H
#define _L_COLLISION_DETECTOR_120118_H

#include <ltypes.h>
#include <lmacros.h>
#include <lbvTree.h>
#include <lcollisionResult.h>

LLIB_BEGIN
namespace collision {

/* The collision detection helper class */
class CollisionDetector {
public:
    /* The collision detect process */
    template <typename BVNode_t>
    static void CollisionDetect(BVNode_t* node0, BVNode_t* node1, CollisionResult* cr);

    /* The self-collision detect process */
    template <typename BVNode_t>
    static void SelfCollisionDetect(BVNode_t* node, CollisionResult* cr);

private:
    /* Hide the constructor cause we only use it's static method */
    CollisionDetector() {}

};

} // end of namespace collision
LLIB_END

#include "_lcollisionDetector_120118.hpp"

#endif
